gint scale)
{
GdkX11Screen *x11_screen;
+ gboolean need_reread_settings = FALSE;
g_return_if_fail (GDK_IS_X11_DISPLAY (display));
x11_screen = GDK_X11_SCREEN (GDK_X11_DISPLAY (display)->screen);
- x11_screen->fixed_window_scale = TRUE;
+ if (!x11_screen->fixed_window_scale)
+ {
+ x11_screen->fixed_window_scale = TRUE;
+
+ /* We treat screens with a window scale set differently when
+ * reading xsettings, so we need to reread */
+ need_reread_settings = TRUE;
+ }
+
_gdk_x11_screen_set_window_scale (x11_screen, scale);
+
+ if (need_reread_settings)
+ _gdk_x11_settings_force_reread (x11_screen);
}
check_manager_window (x11_screen, FALSE);
}
+void
+_gdk_x11_settings_force_reread (GdkX11Screen *x11_screen)
+{
+ read_settings (x11_screen, TRUE);
+}
+
void
_gdk_x11_xsettings_finish (GdkX11Screen *x11_screen)
{
void _gdk_x11_xsettings_init (GdkX11Screen *x11_screen);
void _gdk_x11_xsettings_finish (GdkX11Screen *x11_screen);
+void _gdk_x11_settings_force_reread (GdkX11Screen *x11_screen);
#endif /* XSETTINGS_CLIENT_H */